// pages/function-form/function-form.js
const api = require('../../utils/api.js');

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 功能信息
    functionInfo: {
      name: '',
      description: '',
      icon: '',
      bgColor: '',
      functionId: ''
    },
    // 表单字段配置
    formFields: [],
    // 表单数据
    formData: {},
    // 选择器相关
    showPicker: false,
    currentPickerField: '',
    pickerOptions: [],
    currentPickerValue: [0], // 当前选中的索引
    // 日期时间相关
    showDatePicker: false,
    showTimePicker: false,
    currentDateField: '',
    minDate: new Date('2020-01-01').getTime(),
    maxDate: new Date('2030-12-31').getTime()
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const { functionName, category } = options;
    if (functionName) {
      const decodedName = decodeURIComponent(functionName);
      wx.setNavigationBarTitle({
        title: decodedName
      });
      
      this.loadFunctionConfig(decodedName);
    }
  },

  /**
   * 加载功能配置
   */
  loadFunctionConfig(functionName) {
    const config = this.getFunctionFormConfig(functionName);
    
    // 初始化表单数据
    const formData = {};
    config.formFields.forEach(field => {
      // 确保所有字段都有默认的maxLength
      if (!field.maxLength) {
        field.maxLength = field.type === 'input' ? 200 : (field.type === 'textarea' ? 1000 : 100);
      }
      
      formData[field.key] = field.defaultValue || '';
      formData[field.key + 'Length'] = (field.defaultValue || '').length; // 添加长度字段
      if (field.type === 'date') {
        formData[field.key + 'Value'] = field.defaultValue ? new Date(field.defaultValue).getTime() : new Date().getTime();
      } else if (field.type === 'time') {
        formData[field.key + 'Value'] = field.defaultValue ? new Date('1970-01-01 ' + field.defaultValue).getTime() : new Date().getTime();
      }
    });
    
    this.setData({
      functionInfo: {
        name: config.name,
        description: config.description,
        icon: config.icon,
        bgColor: config.bgColor,
        functionId: config.functionId
      },
      formFields: config.formFields,
      formData: formData
    });
  },

  /**
   * 获取功能表单配置
   */
  getFunctionFormConfig(functionName) {
    const configs = {
      // 工作提效类
      '专业翻译': {
        name: '专业翻译',
        description: '多语言精准翻译服务',
        icon: 'exchange',
        bgColor: '#4dabf7',
        functionId: 'professional_translate',
        formFields: [
          {
            key: 'sourceText',
            label: '原文内容',
            type: 'textarea',
            required: true,
            placeholder: '请输入需要翻译的文本内容...',
            maxLength: 2000
          },
          {
            key: 'sourceLanguage',
            label: '源语言',
            type: 'picker',
            required: false,
            options: ['自动检测', '中文', '英文', '日文', '韩文', '法文', '德文', '西班牙文'],
            defaultValue: '自动检测'
          },
          {
            key: 'targetLanguage',
            label: '目标语言',
            type: 'picker',
            required: true,
            options: ['中文', '英文', '日文', '韩文', '法文', '德文', '西班牙文'],
            defaultValue: '英文'
          },
          {
            key: 'translationStyle',
            label: '翻译风格',
            type: 'picker',
            required: false,
            options: ['通用', '商务', '学术', '文学', '技术'],
            defaultValue: '通用'
          }
        ]
      },
      
      '日报处理': {
        name: '日报处理',
        description: '自动生成工作日报总结',
        icon: 'calendar-o',
        bgColor: '#4dabf7',
        functionId: 'daily_report',
        formFields: [
          {
            key: 'reportDate',
            label: '日报日期',
            type: 'date',
            required: true,
            defaultValue: new Date().toISOString().split('T')[0]
          },
          {
            key: 'completedTasks',
            label: '已完成工作',
            type: 'textarea',
            required: true,
            placeholder: '请详细描述今日完成的工作任务...',
            maxLength: 1000
          },
          {
            key: 'ongoingTasks',
            label: '进行中工作',
            type: 'textarea',
            required: false,
            placeholder: '请描述正在进行的工作...',
            maxLength: 500
          },
          {
            key: 'tomorrowPlan',
            label: '明日计划',
            type: 'textarea',
            required: false,
            placeholder: '请输入明天的工作计划...',
            maxLength: 500
          },
          {
            key: 'issues',
            label: '遇到问题',
            type: 'textarea',
            required: false,
            placeholder: '请描述工作中遇到的问题或困难...',
            maxLength: 500
          }
        ]
      },
      
      'PPT助手': {
        name: 'PPT助手',
        description: '智能制作演示文稿',
        icon: 'photo-o',
        bgColor: '#4dabf7',
        functionId: 'ppt_assistant',
        formFields: [
          {
            key: 'presentationTitle',
            label: 'PPT标题',
            type: 'input',
            required: true,
            placeholder: '请输入演示文稿的标题...',
            maxLength: 100
          },
          {
            key: 'audience',
            label: '目标受众',
            type: 'picker',
            required: false,
            options: ['同事/团队', '客户/合作伙伴', '领导/管理层', '学生/学员', '投资人', '其他'],
            defaultValue: '同事/团队'
          },
          {
            key: 'presentationType',
            label: '演示类型',
            type: 'picker',
            required: false,
            options: ['工作汇报', '产品介绍', '项目提案', '培训教学', '数据分析', '其他'],
            defaultValue: '工作汇报'
          },
          {
            key: 'mainContent',
            label: '主要内容',
            type: 'textarea',
            required: true,
            placeholder: '请详细描述PPT的主要内容要点...',
            maxLength: 1500
          },
          {
            key: 'slideCount',
            label: '预期页数',
            type: 'picker',
            required: false,
            options: ['5-10页', '10-15页', '15-20页', '20-30页', '30页以上'],
            defaultValue: '10-15页'
          }
        ]
      },
      
      '回复老板神器': {
        name: '回复老板神器',
        description: '职场沟通回复建议',
        icon: 'chat-o',
        bgColor: '#4dabf7',
        functionId: 'boss_reply',
        formFields: [
          {
            key: 'bossMessage',
            label: '老板消息',
            type: 'textarea',
            required: true,
            placeholder: '请输入老板发送的消息内容...',
            maxLength: 500
          },
          {
            key: 'currentSituation',
            label: '当前情况',
            type: 'textarea',
            required: true,
            placeholder: '请描述实际情况或背景...',
            maxLength: 500
          },
          {
            key: 'replyTone',
            label: '回复语调',
            type: 'picker',
            required: false,
            options: ['正式专业', '友善亲切', '简洁明了', '详细说明', '谦逊礼貌'],
            defaultValue: '正式专业'
          },
          {
            key: 'urgency',
            label: '紧急程度',
            type: 'picker',
            required: false,
            options: ['非常紧急', '比较紧急', '一般', '不紧急'],
            defaultValue: '一般'
          }
        ]
      },

      // 社媒创作类
      '短视频文案生成': {
        name: '短视频文案生成',
        description: '创作吸引眼球的短视频文案',
        icon: 'video-o',
        bgColor: '#ff6b35',
        functionId: 'short_video_script',
        formFields: [
          {
            key: 'videoTopic',
            label: '视频主题',
            type: 'input',
            required: true,
            placeholder: '请输入短视频的主题...',
            maxLength: 100
          },
          {
            key: 'videoType',
            label: '视频类型',
            type: 'picker',
            required: false,
            options: ['美食教程', '生活技巧', '搞笑娱乐', '知识科普', '产品推荐', '旅游分享', '其他'],
            defaultValue: '生活技巧'
          },
          {
            key: 'targetAudience',
            label: '目标受众',
            type: 'picker',
            required: false,
            options: ['年轻人(18-25)', '白领(25-35)', '家庭主妇', '学生党', '中老年', '全年龄段'],
            defaultValue: '年轻人(18-25)'
          },
          {
            key: 'videoDuration',
            label: '视频时长',
            type: 'picker',
            required: false,
            options: ['15-30秒', '30-60秒', '1-2分钟', '2-5分钟', '5分钟以上'],
            defaultValue: '30-60秒'
          },
          {
            key: 'contentDescription',
            label: '内容描述',
            type: 'textarea',
            required: true,
            placeholder: '请详细描述视频要表达的内容...',
            maxLength: 1000
          },
          {
            key: 'callToAction',
            label: '行动召唤',
            type: 'input',
            required: false,
            placeholder: '希望观众做什么？(如：点赞、关注、评论等)',
            maxLength: 50
          }
        ]
      },
      
      '直播带货话术': {
        name: '直播带货话术',
        description: '专业直播销售话术指导',
        icon: 'live',
        bgColor: '#ff6b35',
        functionId: 'live_streaming_talk',
        formFields: [
          {
            key: 'productName',
            label: '产品名称',
            type: 'input',
            required: true,
            placeholder: '请输入产品名称...',
            maxLength: 100
          },
          {
            key: 'productCategory',
            label: '产品类别',
            type: 'picker',
            required: false,
            options: ['美妆护肤', '服装鞋包', '食品饮料', '数码电器', '家居用品', '母婴用品', '运动户外', '其他'],
            defaultValue: '美妆护肤'
          },
          {
            key: 'productFeatures',
            label: '产品特点',
            type: 'textarea',
            required: true,
            placeholder: '请详细描述产品的特点、功效、优势...',
            maxLength: 800
          },
          {
            key: 'originalPrice',
            label: '原价',
            type: 'input',
            required: false,
            placeholder: '请输入产品原价...',
            maxLength: 20
          },
          {
            key: 'livePrice',
            label: '直播价',
            type: 'input',
            required: false,
            placeholder: '请输入直播优惠价...',
            maxLength: 20
          },
          {
            key: 'targetCustomers',
            label: '目标客户',
            type: 'textarea',
            required: false,
            placeholder: '请描述目标客户群体特征...',
            maxLength: 300
          }
        ]
      },
      
      '海报文案设计': {
        name: '海报文案设计',
        description: '营销海报文案策划',
        icon: 'poster',
        bgColor: '#ff6b35',
        functionId: 'poster_copywriting',
        formFields: [
          {
            key: 'posterTheme',
            label: '海报主题',
            type: 'input',
            required: true,
            placeholder: '请输入海报的主题...',
            maxLength: 100
          },
          {
            key: 'posterType',
            label: '海报类型',
            type: 'picker',
            required: false,
            options: ['产品推广', '活动宣传', '品牌形象', '招聘广告', '公益宣传', '节日祝福', '其他'],
            defaultValue: '产品推广'
          },
          {
            key: 'targetAudience',
            label: '目标受众',
            type: 'picker',
            required: false,
            options: ['年轻人(18-25)', '白领(25-35)', '家庭主妇', '学生党', '中老年', '全年龄段'],
            defaultValue: '年轻人(18-25)'
          },
          {
            key: 'keyMessage',
            label: '核心信息',
            type: 'textarea',
            required: true,
            placeholder: '请输入海报要传达的核心信息...',
            maxLength: 500
          },
          {
            key: 'callToAction',
            label: '行动召唤',
            type: 'input',
            required: false,
            placeholder: '希望观众采取什么行动？',
            maxLength: 50
          },
          {
            key: 'brandTone',
            label: '品牌调性',
            type: 'picker',
            required: false,
            options: ['活泼年轻', '专业权威', '温馨亲切', '时尚潮流', '简约大气', '其他'],
            defaultValue: '活泼年轻'
          }
        ]
      },
      
      '小红书文案': {
        name: '小红书文案',
        description: '小红书种草文案创作',
        icon: 'like-o',
        bgColor: '#ff6b35',
        functionId: 'xiaohongshu_content',
        formFields: [
          {
            key: 'contentType',
            label: '内容类型',
            type: 'picker',
            required: false,
            options: ['产品种草', '生活分享', '美妆教程', '穿搭指南', '旅游攻略', '美食探店', '其他'],
            defaultValue: '产品种草'
          },
          {
            key: 'productName',
            label: '产品/主题',
            type: 'input',
            required: true,
            placeholder: '请输入要推荐的产品或主题...',
            maxLength: 100
          },
          {
            key: 'personalExperience',
            label: '个人体验',
            type: 'textarea',
            required: true,
            placeholder: '请分享您的真实使用体验或感受...',
            maxLength: 1000
          },
          {
            key: 'highlights',
            label: '产品亮点',
            type: 'textarea',
            required: false,
            placeholder: '请列出产品的主要亮点或特色...',
            maxLength: 500
          },
          {
            key: 'targetGroup',
            label: '适用人群',
            type: 'picker',
            required: false,
            options: ['学生党', '上班族', '宝妈群体', '美妆爱好者', '时尚达人', '全年龄段'],
            defaultValue: '学生党'
          },
          {
            key: 'priceRange',
            label: '价格区间',
            type: 'picker',
            required: false,
            options: ['50元以下', '50-100元', '100-300元', '300-500元', '500元以上', '不涉及价格'],
            defaultValue: '不涉及价格'
          }
        ]
      },

      // 个人助理类
      '旅游指南': {
        name: '旅游指南',
        description: '个性化旅游路线规划',
        icon: 'location-o',
        bgColor: '#51cf66',
        functionId: 'travel_guide',
        formFields: [
          {
            key: 'destination',
            label: '目的地',
            type: 'input',
            required: true,
            placeholder: '请输入旅游目的地城市或景点...',
            maxLength: 100
          },
          {
            key: 'travelDays',
            label: '旅游天数',
            type: 'picker',
            required: true,
            options: ['1天', '2-3天', '4-5天', '6-7天', '1周以上'],
            defaultValue: '2-3天'
          },
          {
            key: 'budget',
            label: '预算范围',
            type: 'picker',
            required: false,
            options: ['1000元以下', '1000-3000元', '3000-5000元', '5000-10000元', '10000元以上', '不限预算'],
            defaultValue: '3000-5000元'
          },
          {
            key: 'travelStyle',
            label: '旅行风格',
            type: 'picker',
            required: false,
            options: ['休闲度假', '文化探索', '美食之旅', '自然风光', '冒险刺激', '购物娱乐'],
            defaultValue: '休闲度假'
          },
          {
            key: 'companions',
            label: '同行人员',
            type: 'picker',
            required: false,
            options: ['独自一人', '情侣/夫妻', '家庭出游', '朋友聚会', '商务出行'],
            defaultValue: '情侣/夫妻'
          },
          {
            key: 'interests',
            label: '兴趣爱好',
            type: 'textarea',
            required: false,
            placeholder: '请描述您的兴趣爱好和特殊需求...',
            maxLength: 500
          }
        ]
      },

      '朋友圈文案创作': {
        name: '朋友圈文案创作',
        description: '个性化朋友圈内容创作',
        icon: 'friends-o',
        bgColor: '#ff6b35',
        functionId: 'wechat_moments',
        formFields: [
          {
            key: 'contentType',
            label: '内容类型',
            type: 'picker',
            required: false,
            options: ['日常分享', '美食晒图', '旅行记录', '工作感悟', '心情表达', '节日祝福', '其他'],
            defaultValue: '日常分享'
          },
          {
            key: 'mainContent',
            label: '分享内容',
            type: 'textarea',
            required: true,
            placeholder: '请描述想要分享的内容、经历或心情...',
            maxLength: 800
          },
          {
            key: 'mood',
            label: '情感基调',
            type: 'picker',
            required: false,
            options: ['开心愉悦', '感动温馨', '励志正能量', '搞笑幽默', '文艺清新', '平淡日常'],
            defaultValue: '开心愉悦'
          },
          {
            key: 'textStyle',
            label: '文案风格',
            type: 'picker',
            required: false,
            options: ['简洁明了', '生动有趣', '文艺范儿', '接地气', '高级感', '萌萌哒'],
            defaultValue: '生动有趣'
          }
        ]
      },

      '美食推荐': {
        name: '美食推荐',
        description: '本地特色美食推荐',
        icon: 'good-job-o',
        bgColor: '#51cf66',
        functionId: 'food_recommendation',
        formFields: [
          {
            key: 'location',
            label: '所在城市',
            type: 'input',
            required: true,
            placeholder: '请输入您所在的城市...',
            maxLength: 50
          },
          {
            key: 'cuisineType',
            label: '菜系偏好',
            type: 'picker',
            required: false,
            options: ['不限', '川菜', '粤菜', '湘菜', '鲁菜', '苏菜', '浙菜', '闽菜', '徽菜', '东北菜', '西北菜', '日韩料理', '西餐', '其他'],
            defaultValue: '不限'
          },
          {
            key: 'priceRange',
            label: '价位要求',
            type: 'picker',
            required: false,
            options: ['不限', '50元以下', '50-100元', '100-200元', '200-500元', '500元以上'],
            defaultValue: '100-200元'
          },
          {
            key: 'mealType',
            label: '用餐类型',
            type: 'picker',
            required: false,
            options: ['不限', '早餐', '午餐', '晚餐', '夜宵', '下午茶', '聚餐'],
            defaultValue: '不限'
          },
          {
            key: 'specialRequests',
            label: '特殊需求',
            type: 'textarea',
            required: false,
            placeholder: '请描述特殊的饮食要求或偏好...',
            maxLength: 300
          }
        ]
      },

      '学习计划制定': {
        name: '学习计划制定',
        description: '科学高效学习计划',
        icon: 'todo-list-o',
        bgColor: '#51cf66',
        functionId: 'study_plan',
        formFields: [
          {
            key: 'subject',
            label: '学习内容',
            type: 'input',
            required: true,
            placeholder: '请输入要学习的科目或技能...',
            maxLength: 100
          },
          {
            key: 'currentLevel',
            label: '当前水平',
            type: 'picker',
            required: false,
            options: ['零基础', '初级', '中级', '高级'],
            defaultValue: '零基础'
          },
          {
            key: 'targetLevel',
            label: '目标水平',
            type: 'picker',
            required: true,
            options: ['入门', '初级', '中级', '高级', '专业级'],
            defaultValue: '中级'
          },
          {
            key: 'timeFrame',
            label: '学习周期',
            type: 'picker',
            required: true,
            options: ['1个月', '2-3个月', '3-6个月', '6-12个月', '1年以上'],
            defaultValue: '3-6个月'
          },
          {
            key: 'dailyTime',
            label: '每日可用时间',
            type: 'picker',
            required: true,
            options: ['30分钟以内', '30分钟-1小时', '1-2小时', '2-3小时', '3小时以上'],
            defaultValue: '1-2小时'
          },
          {
            key: 'learningGoal',
            label: '学习目标',
            type: 'textarea',
            required: false,
            placeholder: '请详细描述您的学习目标和期望达到的效果...',
            maxLength: 500
          }
        ]
      },
      
      'AI医生': {
        name: 'AI医生',
        description: '健康咨询和建议服务',
        icon: 'service-o',
        bgColor: '#51cf66',
        functionId: 'ai_doctor',
        formFields: [
          {
            key: 'symptoms',
            label: '症状描述',
            type: 'textarea',
            required: true,
            placeholder: '请详细描述您的症状和不适感受...',
            maxLength: 1000
          },
          {
            key: 'duration',
            label: '持续时间',
            type: 'picker',
            required: false,
            options: ['1天内', '2-3天', '1周内', '1-2周', '1个月内', '超过1个月'],
            defaultValue: '2-3天'
          },
          {
            key: 'severity',
            label: '严重程度',
            type: 'picker',
            required: false,
            options: ['轻微', '中等', '严重', '非常严重'],
            defaultValue: '中等'
          },
          {
            key: 'age',
            label: '年龄段',
            type: 'picker',
            required: false,
            options: ['18岁以下', '18-30岁', '30-45岁', '45-60岁', '60岁以上'],
            defaultValue: '18-30岁'
          },
          {
            key: 'medicalHistory',
            label: '既往病史',
            type: 'textarea',
            required: false,
            placeholder: '请简述相关病史、过敏史或正在服用的药物...',
            maxLength: 500
          },
          {
            key: 'consultationType',
            label: '咨询类型',
            type: 'picker',
            required: false,
            options: ['症状分析', '健康建议', '用药指导', '生活调理', '其他'],
            defaultValue: '症状分析'
          }
        ]
      },
      
      '法律咨询': {
        name: '法律咨询',
        description: '法律问题解答指导',
        icon: 'balance-o',
        bgColor: '#51cf66',
        functionId: 'legal_consultation',
        formFields: [
          {
            key: 'legalIssue',
            label: '法律问题',
            type: 'textarea',
            required: true,
            placeholder: '请详细描述您遇到的法律问题或纠纷...',
            maxLength: 1500
          },
          {
            key: 'legalArea',
            label: '法律领域',
            type: 'picker',
            required: false,
            options: ['劳动法', '合同法', '婚姻法', '房产法', '刑法', '民法', '知识产权', '公司法', '其他'],
            defaultValue: '民法'
          },
          {
            key: 'urgency',
            label: '紧急程度',
            type: 'picker',
            required: false,
            options: ['非常紧急', '比较紧急', '一般', '不紧急'],
            defaultValue: '一般'
          },
          {
            key: 'involvedParties',
            label: '涉及方',
            type: 'input',
            required: false,
            placeholder: '请简述涉及的当事方关系...',
            maxLength: 200
          },
          {
            key: 'evidenceMaterials',
            label: '证据材料',
            type: 'textarea',
            required: false,
            placeholder: '请描述您掌握的相关证据或材料...',
            maxLength: 800
          },
          {
            key: 'desiredOutcome',
            label: '期望结果',
            type: 'textarea',
            required: false,
            placeholder: '请描述您希望达到的结果或解决方案...',
            maxLength: 500
          }
        ]
      },

      // 论文辅助类
      '论文大纲生成': {
        name: '论文大纲生成',
        description: '学术论文结构大纲设计',
        icon: 'orders-o',
        bgColor: '#9775fa',
        functionId: 'paper_outline',
        formFields: [
          {
            key: 'paperTitle',
            label: '论文题目',
            type: 'input',
            required: true,
            placeholder: '请输入论文题目...',
            maxLength: 200
          },
          {
            key: 'researchField',
            label: '研究领域',
            type: 'picker',
            required: false,
            options: ['计算机科学', '经济学', '管理学', '教育学', '心理学', '社会学', '医学', '工程学', '文学', '其他'],
            defaultValue: '计算机科学'
          },
          {
            key: 'paperType',
            label: '论文类型',
            type: 'picker',
            required: false,
            options: ['学士论文', '硕士论文', '博士论文', '期刊论文', '会议论文', '其他'],
            defaultValue: '硕士论文'
          },
          {
            key: 'researchQuestion',
            label: '研究问题',
            type: 'textarea',
            required: true,
            placeholder: '请详细描述研究问题和研究目标...',
            maxLength: 1000
          },
          {
            key: 'methodology',
            label: '研究方法',
            type: 'textarea',
            required: false,
            placeholder: '请描述计划采用的研究方法...',
            maxLength: 500
          },
          {
            key: 'expectedLength',
            label: '预期字数',
            type: 'picker',
            required: false,
            options: ['5000字以下', '5000-10000字', '10000-20000字', '20000-50000字', '50000字以上'],
            defaultValue: '10000-20000字'
          }
        ]
      },
      
      '参考文献整理': {
        name: '参考文献整理',
        description: '规范化文献引用整理',
        icon: 'bookmark-o',
        bgColor: '#9775fa',
        functionId: 'reference_management',
        formFields: [
          {
            key: 'citationStyle',
            label: '引用格式',
            type: 'picker',
            required: true,
            options: ['APA', 'MLA', 'Chicago', 'Harvard', 'IEEE', 'GB/T 7714', '其他'],
            defaultValue: 'APA'
          },
          {
            key: 'documentType',
            label: '文档类型',
            type: 'picker',
            required: false,
            options: ['期刊论文', '会议论文', '图书', '学位论文', '网页资料', '报告', '混合类型'],
            defaultValue: '期刊论文'
          },
          {
            key: 'rawReferences',
            label: '原始文献信息',
            type: 'textarea',
            required: true,
            placeholder: '请粘贴或输入需要整理的文献信息，每条文献信息占一行...',
            maxLength: 3000
          },
          {
            key: 'language',
            label: '文献语言',
            type: 'picker',
            required: false,
            options: ['中文', '英文', '中英文混合', '其他'],
            defaultValue: '中英文混合'
          },
          {
            key: 'sortOrder',
            label: '排序方式',
            type: 'picker',
            required: false,
            options: ['按作者姓名', '按发表时间', '按标题', '保持原顺序'],
            defaultValue: '按作者姓名'
          }
        ]
      },
      
      '学术术语解释': {
        name: '学术术语解释',
        description: '专业术语详细解释',
        icon: 'search',
        bgColor: '#9775fa',
        functionId: 'academic_terms',
        formFields: [
          {
            key: 'terms',
            label: '术语内容',
            type: 'textarea',
            required: true,
            placeholder: '请输入需要解释的学术术语，可输入多个术语，用逗号分隔...',
            maxLength: 500
          },
          {
            key: 'field',
            label: '学科领域',
            type: 'picker',
            required: false,
            options: ['计算机科学', '经济学', '管理学', '教育学', '心理学', '社会学', '医学', '工程学', '文学', '法学', '其他'],
            defaultValue: '计算机科学'
          },
          {
            key: 'explanationLevel',
            label: '解释深度',
            type: 'picker',
            required: false,
            options: ['基础入门', '中等详细', '专业深入', '学术研究'],
            defaultValue: '中等详细'
          },
          {
            key: 'includeExamples',
            label: '是否需要示例',
            type: 'picker',
            required: false,
            options: ['需要', '不需要'],
            defaultValue: '需要'
          },
          {
            key: 'context',
            label: '使用语境',
            type: 'textarea',
            required: false,
            placeholder: '请描述这些术语的使用语境或相关背景...',
            maxLength: 300
          }
        ]
      },
      
      '论文润色': {
        name: '论文润色',
        description: '学术写作语言优化',
        icon: 'brush-o',
        bgColor: '#9775fa',
        functionId: 'paper_polish',
        formFields: [
          {
            key: 'paperContent',
            label: '论文内容',
            type: 'textarea',
            required: true,
            placeholder: '请粘贴需要润色的论文段落或章节...',
            maxLength: 3000
          },
          {
            key: 'contentType',
            label: '内容类型',
            type: 'picker',
            required: false,
            options: ['摘要', '引言', '文献综述', '方法论', '结果分析', '讨论', '结论', '其他'],
            defaultValue: '其他'
          },
          {
            key: 'language',
            label: '论文语言',
            type: 'picker',
            required: true,
            options: ['中文', '英文'],
            defaultValue: '中文'
          },
          {
            key: 'polishType',
            label: '润色类型',
            type: 'picker',
            required: false,
            options: ['语法修正', '表达优化', '逻辑梳理', '词汇提升', '综合润色'],
            defaultValue: '综合润色'
          },
          {
            key: 'academicLevel',
            label: '学术水平',
            type: 'picker',
            required: false,
            options: ['本科', '硕士', '博士', '期刊发表'],
            defaultValue: '硕士'
          },
          {
            key: 'specificRequirements',
            label: '特殊要求',
            type: 'textarea',
            required: false,
            placeholder: '请描述特殊的润色要求或需要注意的问题...',
            maxLength: 300
          }
        ]
      },
      
      // 生活娱乐类
      '故事创作': {
        name: '故事创作',
        description: '原创故事情节创作',
        icon: 'edit',
        bgColor: '#ffd43b',
        functionId: 'story_creation',
        formFields: [
          {
            key: 'storyType',
            label: '故事类型',
            type: 'picker',
            required: false,
            options: ['童话故事', '科幻故事', '悬疑故事', '爱情故事', '冒险故事', '历史故事', '其他'],
            defaultValue: '童话故事'
          },
          {
            key: 'targetAudience',
            label: '目标读者',
            type: 'picker',
            required: false,
            options: ['儿童(3-8岁)', '少年(9-15岁)', '青年(16-25岁)', '成年人', '全年龄'],
            defaultValue: '全年龄'
          },
          {
            key: 'storyLength',
            label: '故事长度',
            type: 'picker',
            required: false,
            options: ['短篇(500字以内)', '中篇(500-2000字)', '长篇(2000字以上)'],
            defaultValue: '中篇(500-2000字)'
          },
          {
            key: 'mainCharacters',
            label: '主要角色',
            type: 'input',
            required: false,
            placeholder: '请简述主要角色的设定...',
            maxLength: 200
          },
          {
            key: 'plotOutline',
            label: '故事大纲',
            type: 'textarea',
            required: true,
            placeholder: '请描述故事的基本情节或您想要的故事主题...',
            maxLength: 800
          },
          {
            key: 'setting',
            label: '故事背景',
            type: 'input',
            required: false,
            placeholder: '请描述故事发生的时间地点...',
            maxLength: 100
          }
        ]
      },
      
      '诗歌生成': {
        name: '诗歌生成',
        description: '优美诗歌创作服务',
        icon: 'flower-o',
        bgColor: '#ffd43b',
        functionId: 'poetry_generation',
        formFields: [
          {
            key: 'poetryType',
            label: '诗歌类型',
            type: 'picker',
            required: false,
            options: ['现代诗', '古体诗', '律诗', '绝句', '词', '自由诗', '其他'],
            defaultValue: '现代诗'
          },
          {
            key: 'theme',
            label: '主题内容',
            type: 'input',
            required: true,
            placeholder: '请输入诗歌的主题或想要表达的内容...',
            maxLength: 100
          },
          {
            key: 'emotion',
            label: '情感基调',
            type: 'picker',
            required: false,
            options: ['欢快愉悦', '深情温柔', '忧郁沉思', '激昂豪迈', '宁静淡雅', '其他'],
            defaultValue: '深情温柔'
          },
          {
            key: 'style',
            label: '写作风格',
            type: 'picker',
            required: false,
            options: ['浪漫主义', '现实主义', '象征主义', '古典风格', '现代风格', '其他'],
            defaultValue: '现代风格'
          },
          {
            key: 'keywords',
            label: '关键词',
            type: 'input',
            required: false,
            placeholder: '请输入希望在诗中出现的关键词，用逗号分隔...',
            maxLength: 100
          },
          {
            key: 'length',
            label: '诗歌长度',
            type: 'picker',
            required: false,
            options: ['短诗(4-8行)', '中等(8-16行)', '长诗(16行以上)'],
            defaultValue: '中等(8-16行)'
          }
        ]
      },
      
      '笑话/段子': {
        name: '笑话/段子',
        description: '幽默笑话段子生成',
        icon: 'smile-o',
        bgColor: '#ffd43b',
        functionId: 'joke_generation',
        formFields: [
          {
            key: 'jokeType',
            label: '笑话类型',
            type: 'picker',
            required: false,
            options: ['冷笑话', '脑筋急转弯', '谐音梗', '生活段子', '职场笑话', '网络段子', '其他'],
            defaultValue: '生活段子'
          },
          {
            key: 'audience',
            label: '适用场合',
            type: 'picker',
            required: false,
            options: ['朋友聚会', '职场社交', '家庭聊天', '网络分享', '演讲活跃气氛', '其他'],
            defaultValue: '朋友聚会'
          },
          {
            key: 'topic',
            label: '话题方向',
            type: 'input',
            required: false,
            placeholder: '请输入希望的话题方向，如：工作、生活、恋爱等...',
            maxLength: 50
          },
          {
            key: 'style',
            label: '幽默风格',
            type: 'picker',
            required: false,
            options: ['轻松幽默', '机智俏皮', '无厘头', '自黑风格', '吐槽风格', '其他'],
            defaultValue: '轻松幽默'
          },
          {
            key: 'quantity',
            label: '生成数量',
            type: 'picker',
            required: false,
            options: ['1个', '3个', '5个', '10个'],
            defaultValue: '3个'
          }
        ]
      },
      
      // 快速配置剩余功能 - 使用通用表单结构
      '星座运势': { name: '星座运势', description: '每日星座运势解读', icon: 'star-o', bgColor: '#ffd43b', functionId: 'horoscope', formFields: [
        { key: 'zodiacSign', label: '星座', type: 'picker', required: true, options: ['白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座', '水瓶座', '双鱼座'], defaultValue: '白羊座' },
        { key: 'period', label: '时间范围', type: 'picker', required: false, options: ['今日', '本周', '本月'], defaultValue: '今日' },
        { key: 'aspects', label: '关注方面', type: 'picker', required: false, options: ['综合运势', '爱情运势', '事业运势', '财运', '健康运势'], defaultValue: '综合运势' }
      ]},
      '天气查询': { name: '天气查询', description: '实时天气信息查询', icon: 'umbrella-circle', bgColor: '#ffd43b', functionId: 'weather', formFields: [
        { key: 'location', label: '查询地点', type: 'input', required: true, placeholder: '请输入城市名称...', maxLength: 50 },
        { key: 'period', label: '查询时间', type: 'picker', required: false, options: ['当前天气', '今日天气', '未来3天', '未来7天'], defaultValue: '今日天气' }
      ]},
      '新闻咨询': { name: '新闻咨询', description: '热点新闻资讯推送', icon: 'newspaper-o', bgColor: '#ffd43b', functionId: 'news', formFields: [
        { key: 'category', label: '新闻类别', type: 'picker', required: false, options: ['综合新闻', '科技', '财经', '体育', '娱乐', '国际', '社会'], defaultValue: '综合新闻' },
        { key: 'region', label: '地区范围', type: 'picker', required: false, options: ['全国', '本地', '国际'], defaultValue: '全国' }
      ]},
      '股票查询': { name: '股票查询', description: '股市行情实时查询', icon: 'chart-trending-o', bgColor: '#ffd43b', functionId: 'stock', formFields: [
        { key: 'stockCode', label: '股票代码/名称', type: 'input', required: true, placeholder: '请输入股票代码或名称...', maxLength: 20 },
        { key: 'queryType', label: '查询类型', type: 'picker', required: false, options: ['实时行情', '基本面分析', '技术分析', '新闻资讯'], defaultValue: '实时行情' }
      ]},
      '小说创作': { name: '小说创作', description: '长篇小说情节创作', icon: 'book-o', bgColor: '#ffd43b', functionId: 'novel', formFields: [
        { key: 'genre', label: '小说类型', type: 'picker', required: false, options: ['都市言情', '玄幻奇幻', '科幻未来', '历史军事', '悬疑推理', '武侠仙侠'], defaultValue: '都市言情' },
        { key: 'plotOutline', label: '情节大纲', type: 'textarea', required: true, placeholder: '请描述小说的基本情节...', maxLength: 1000 },
        { key: 'characters', label: '主要角色', type: 'textarea', required: false, placeholder: '请描述主要角色设定...', maxLength: 500 }
      ]},
      '音乐推荐': { name: '音乐推荐', description: '个性化音乐推荐', icon: 'music-o', bgColor: '#ffd43b', functionId: 'music', formFields: [
        { key: 'mood', label: '心情状态', type: 'picker', required: false, options: ['开心愉悦', '放松舒缓', '激励振奋', '忧伤怀旧', '专注工作'], defaultValue: '放松舒缓' },
        { key: 'genre', label: '音乐风格', type: 'picker', required: false, options: ['流行', '摇滚', '民谣', '古典', '电子', '爵士', '说唱'], defaultValue: '流行' }
      ]},
      
      // 视频创作类
      '短视频脚本': { name: '短视频脚本', description: '创意短视频剧本创作', icon: 'video', bgColor: '#f06292', functionId: 'video_script', formFields: [
        { key: 'theme', label: '视频主题', type: 'input', required: true, placeholder: '请输入短视频主题...', maxLength: 100 },
        { key: 'duration', label: '视频时长', type: 'picker', required: false, options: ['15-30秒', '30-60秒', '1-2分钟'], defaultValue: '30-60秒' },
        { key: 'style', label: '视频风格', type: 'picker', required: false, options: ['搞笑幽默', '知识科普', '生活记录', '产品展示'], defaultValue: '搞笑幽默' }
      ]},
      '分镜脚本设计': { name: '分镜脚本设计', description: '专业分镜头脚本设计', icon: 'photo', bgColor: '#f06292', functionId: 'storyboard', formFields: [
        { key: 'concept', label: '创意概念', type: 'textarea', required: true, placeholder: '请描述视频创意概念...', maxLength: 500 },
        { key: 'shotCount', label: '镜头数量', type: 'picker', required: false, options: ['5-10个', '10-20个', '20个以上'], defaultValue: '10-20个' }
      ]},
      '台词生成': { name: '台词生成', description: '影视台词创作优化', icon: 'volume-o', bgColor: '#f06292', functionId: 'dialogue', formFields: [
        { key: 'scene', label: '场景描述', type: 'textarea', required: true, placeholder: '请描述场景情况...', maxLength: 300 },
        { key: 'characters', label: '角色信息', type: 'textarea', required: true, placeholder: '请描述角色性格特点...', maxLength: 300 }
      ]},
      '背景音乐推荐': { name: '背景音乐推荐', description: '视频配乐选择建议', icon: 'music', bgColor: '#f06292', functionId: 'bgm', formFields: [
        { key: 'videoType', label: '视频类型', type: 'picker', required: true, options: ['宣传片', '教程', 'vlog', '广告', '纪录片'], defaultValue: 'vlog' },
        { key: 'mood', label: '期望氛围', type: 'picker', required: false, options: ['轻松愉快', '激励振奋', '温馨感人', '紧张悬疑'], defaultValue: '轻松愉快' }
      ]},
      
      // 商业营销类
      '产品文案': { name: '产品文案', description: '产品卖点文案策划', icon: 'shop-o', bgColor: '#26c6da', functionId: 'product_copy', formFields: [
        { key: 'productName', label: '产品名称', type: 'input', required: true, placeholder: '请输入产品名称...', maxLength: 100 },
        { key: 'features', label: '产品特点', type: 'textarea', required: true, placeholder: '请描述产品主要特点...', maxLength: 500 },
        { key: 'targetAudience', label: '目标用户', type: 'input', required: false, placeholder: '请描述目标用户群体...', maxLength: 100 }
      ]},
      '营销策划案': { name: '营销策划案', description: '全方位营销方案策划', icon: 'bullhorn-o', bgColor: '#26c6da', functionId: 'marketing_plan', formFields: [
        { key: 'product', label: '产品/服务', type: 'input', required: true, placeholder: '请输入产品或服务名称...', maxLength: 100 },
        { key: 'budget', label: '预算范围', type: 'picker', required: false, options: ['1万以下', '1-5万', '5-10万', '10万以上'], defaultValue: '1-5万' },
        { key: 'goals', label: '营销目标', type: 'textarea', required: true, placeholder: '请描述营销目标...', maxLength: 300 }
      ]},
      '广告语创作': { name: '广告语创作', description: '朗朗上口的广告语', icon: 'comment-circle-o', bgColor: '#26c6da', functionId: 'slogan', formFields: [
        { key: 'brand', label: '品牌名称', type: 'input', required: true, placeholder: '请输入品牌名称...', maxLength: 50 },
        { key: 'coreValue', label: '核心价值', type: 'input', required: true, placeholder: '请输入品牌核心价值...', maxLength: 100 }
      ]},
      '竞品分析报告': { name: '竞品分析报告', description: '深度竞品分析报告', icon: 'bar-chart-o', bgColor: '#26c6da', functionId: 'competitor_analysis', formFields: [
        { key: 'industry', label: '行业领域', type: 'input', required: true, placeholder: '请输入行业领域...', maxLength: 50 },
        { key: 'competitors', label: '竞品列表', type: 'textarea', required: true, placeholder: '请列出主要竞品...', maxLength: 300 }
      ]},
      
      // MJ绘画咒语
      'AI绘画提示词生成': { name: 'AI绘画提示词生成', description: '专业AI绘画提示词', icon: 'magic', bgColor: '#ab47bc', functionId: 'ai_prompt', formFields: [
        { key: 'subject', label: '绘画主题', type: 'input', required: true, placeholder: '请描述想要绘制的内容...', maxLength: 200 },
        { key: 'style', label: '艺术风格', type: 'picker', required: false, options: ['写实', '卡通', '油画', '水彩', '素描'], defaultValue: '写实' }
      ]},
      '艺术风格推荐': { name: '艺术风格推荐', description: '多样化艺术风格指导', icon: 'palette', bgColor: '#ab47bc', functionId: 'art_style', formFields: [
        { key: 'theme', label: '创作主题', type: 'input', required: true, placeholder: '请输入创作主题...', maxLength: 100 },
        { key: 'mood', label: '想要表达的情感', type: 'picker', required: false, options: ['温暖', '冷静', '激情', '神秘'], defaultValue: '温暖' }
      ]},
      '绘画参数优化': { name: '绘画参数优化', description: '绘画参数调优建议', icon: 'setting-o', bgColor: '#ab47bc', functionId: 'paint_params', formFields: [
        { key: 'currentParams', label: '当前参数', type: 'textarea', required: true, placeholder: '请输入当前使用的绘画参数...', maxLength: 500 },
        { key: 'issues', label: '遇到的问题', type: 'textarea', required: false, placeholder: '请描述遇到的问题...', maxLength: 300 }
      ]},
      
      // 问卷助手
      '调查问卷设计': { name: '调查问卷设计', description: '科学问卷结构设计', icon: 'description', bgColor: '#66bb6a', functionId: 'survey_design', formFields: [
        { key: 'topic', label: '调研主题', type: 'input', required: true, placeholder: '请输入调研主题...', maxLength: 100 },
        { key: 'targetGroup', label: '目标群体', type: 'input', required: true, placeholder: '请描述目标调研群体...', maxLength: 100 }
      ]},
      '问题优化': { name: '问题优化', description: '问卷问题表达优化', icon: 'question-o', bgColor: '#66bb6a', functionId: 'question_optimize', formFields: [
        { key: 'questions', label: '原始问题', type: 'textarea', required: true, placeholder: '请输入需要优化的问题...', maxLength: 1000 }
      ]},
      '调查数据分析': { name: '调查数据分析', description: '问卷数据深度分析', icon: 'pie-chart-o', bgColor: '#66bb6a', functionId: 'data_analysis', formFields: [
        { key: 'data', label: '调研数据', type: 'textarea', required: true, placeholder: '请输入调研数据...', maxLength: 2000 },
        { key: 'analysisType', label: '分析类型', type: 'picker', required: false, options: ['描述性分析', '对比分析', '趋势分析'], defaultValue: '描述性分析' }
      ]}
    };

    // 如果没有找到配置，返回通用配置
    return configs[functionName] || {
      name: functionName,
      description: '智能AI助手功能',
      icon: 'star-o',
      bgColor: '#4dabf7',
      functionId: 'general',
      formFields: [
        {
          key: 'content',
          label: '内容描述',
          type: 'textarea',
          required: true,
          placeholder: '请详细描述您的需求...',
          maxLength: 2000
        }
      ]
    };
  },

  /**
   * 输入框内容变化
   */
  onInputChange(event) {
    const { field } = event.currentTarget.dataset;
    const { value } = event.detail;
    
    this.setData({
      [`formData.${field}`]: value,
      [`formData.${field}Length`]: value.length
    });
  },

  /**
   * 显示选择器
   */
  showPicker(event) {
    const { field, index } = event.currentTarget.dataset;
    const fieldConfig = this.data.formFields[index];
    
    console.log('showPicker - field:', field, 'index:', index);
    console.log('showPicker - fieldConfig:', fieldConfig);
    
    if (fieldConfig && fieldConfig.options) {
      console.log('showPicker - options:', fieldConfig.options);
      
      // 获取当前选中的值的索引
      const currentValue = this.data.formData[field] || fieldConfig.defaultValue || fieldConfig.options[0];
      const currentIndex = fieldConfig.options.indexOf(currentValue);
      
      this.setData({
        showPicker: true,
        currentPickerField: field,
        pickerOptions: fieldConfig.options, // 直接使用字符串数组
        pickerDefaultIndex: currentIndex >= 0 ? currentIndex : 0,
        currentPickerValue: [currentIndex >= 0 ? currentIndex : 0]
      });
    } else {
      console.error('选择器配置错误:', fieldConfig);
    }
  },

  /**
   * picker-view滚动变化
   */
  onPickerChange(event) {
    const { value } = event.detail;
    console.log('onPickerChange - value:', value);
    this.setData({
      currentPickerValue: value
    });
  },

  /**
   * 确认选择器
   */
  onPickerConfirm() {
    const field = this.data.currentPickerField;
    const selectedIndex = this.data.currentPickerValue[0];
    const selectedValue = this.data.pickerOptions[selectedIndex];
    
    console.log('onPickerConfirm - field:', field);
    console.log('onPickerConfirm - selectedIndex:', selectedIndex);
    console.log('onPickerConfirm - selectedValue:', selectedValue);
    
    if (selectedValue) {
      this.setData({
        [`formData.${field}`]: selectedValue,
        [`formData.${field}Length`]: (selectedValue || '').length,
        showPicker: false
      }, () => {
        console.log('onPickerConfirm - setData完成，新的formData[' + field + ']:', this.data.formData[field]);
      });
    } else {
      console.error('onPickerConfirm - 无法获取选中的值');
      this.setData({
        showPicker: false
      });
    }
  },

  /**
   * 取消选择器
   */
  onPickerCancel() {
    this.setData({
      showPicker: false
    });
  },

  /**
   * 显示日期选择器
   */
  showDatePicker(event) {
    const { field } = event.currentTarget.dataset;
    this.setData({
      showDatePicker: true,
      currentDateField: field
    });
  },

  /**
   * 确认日期选择
   */
  onDateConfirm(event) {
    const timestamp = event.detail;
    const date = new Date(timestamp);
    const dateStr = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
    const field = this.data.currentDateField;
    
    this.setData({
      [`formData.${field}`]: dateStr,
      [`formData.${field}Value`]: timestamp,
      showDatePicker: false
    });
  },

  /**
   * 取消日期选择
   */
  onDateCancel() {
    this.setData({
      showDatePicker: false
    });
  },

  /**
   * 生成内容
   */
  generateContent() {
    const { formFields, formData, functionInfo } = this.data;
    
    // 验证必填字段
    for (const field of formFields) {
      if (field.required && !formData[field.key]?.trim()) {
        wx.showToast({
          title: `请填写${field.label}`,
          icon: 'none'
        });
        return;
      }
    }

    // 构建AI提示内容
    const prompt = this.buildPrompt(formData, formFields, functionInfo);
    
    // 跳转到聊天页面
    wx.navigateTo({
      url: `/pages/chat/chat?query=${encodeURIComponent(prompt)}&functionType=${functionInfo.functionId}&title=${encodeURIComponent(functionInfo.name)}`
    });
  },

  /**
   * 构建AI提示内容
   */
  buildPrompt(formData, formFields, functionInfo) {
    let prompt = `请为以下需求提供专业的${functionInfo.name}服务：\n\n`;
    
    formFields.forEach(field => {
      const value = formData[field.key];
      if (value && value.trim()) {
        prompt += `【${field.label}】\n${value}\n\n`;
      }
    });
    
    prompt += `请根据以上信息生成专业、详细的内容。`;
    
    return prompt;
  },

  /**
   * 重置表单
   */
  resetForm() {
    wx.showModal({
      title: '确认重置',
      content: '确定要清空所有输入内容吗？',
      success: (res) => {
        if (res.confirm) {
          const formData = {};
          this.data.formFields.forEach(field => {
            formData[field.key] = field.defaultValue || '';
            formData[field.key + 'Length'] = (field.defaultValue || '').length;
            if (field.type === 'date') {
              formData[field.key + 'Value'] = field.defaultValue ? new Date(field.defaultValue).getTime() : new Date().getTime();
            }
          });
          
          this.setData({
            formData: formData
          });
        }
      }
    });
  }
});
